package com.jms.framework.beans;

import java.lang.reflect.Method;

/**
 * BeanDependency类用于表示Bean之间的依赖关系
 * 它封装了 bean 名称、类名和依赖注入方法的信息
 * @author jms
 * @since 20250123 1.0.0
 */
public class BeanDependency {
    // bean的名称，用于唯一标识一个bean
    private String beanName;
    // bean所属类的名称
    private String className;
    // 依赖注入的方法 或
    private Method method;

    /**
     * 构造一个新的BeanDependency实例
     *
     * @param beanName bean的名称
     * @param className bean所属类的名称
     * @param method 依赖注入的方法
     */
    public BeanDependency(String beanName, String className, Method method) {
        this.beanName = beanName;
        this.className = className;
        this.method = method;
    }

    /**
     * 获取bean的名称
     *
     * @return bean的名称
     */
    public String getBeanName() {
        return beanName;
    }

    /**
     * 设置bean的名称
     *
     * @param beanName bean的名称
     */
    public void setBeanName(String beanName) {
        this.beanName = beanName;
    }

    /**
     * 获取bean所属类的名称
     *
     * @return bean所属类的名称
     */
    public String getClassName() {
        return className;
    }

    /**
     * 设置bean所属类的名称
     *
     * @param className bean所属类的名称
     */
    public void setClassName(String className) {
        this.className = className;
    }

    /**
     * 获取依赖注入的方法
     *
     * @return 依赖注入的方法
     */
    public Method getMethod() {
        return method;
    }

    /**
     * 设置依赖注入的方法
     *
     * @param method 依赖注入的方法
     */
    public void setMethod(Method method) {
        this.method = method;
    }
}
